package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/**
 * 简易的记事本工具
 * 程序启动后，要求将用户在控制台上输入的每一行字符串都写入到文件note.txt中
 * 如果用户单独输入了"exit",那么程序退出。
 * 写入文件的内容不需要考虑换行
 */
public class Test3 {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        /*
            文件输出流创建时有两种模式:覆盖模式和追加模式
            覆盖模式对应的构造器:
            FileOutputStream(String path)
            FileOutputStream(File file)
            覆盖模式在创建输出流时如果指定的文件已经存在，会将该文件内容清空
            因此文件原本的数据不会被保留。

            追加模式对应的构造器:
            FileOutputStream(String path,boolean append)
            FileOutputStream(File file,boolean append)
            追加模式在创建输出流时如果指定的文件已经存在，则不会清空该文件内容。
            新写入的内容都会陆续被追加到文件末尾

         */
//        FileOutputStream fos = new FileOutputStream("note.txt");
        FileOutputStream fos = new FileOutputStream("note.txt",true);
        while(true){
            //首先获取用户输入的一行字符串
            String line = scanner.nextLine();
            //判断输入的是否为"exit"
            if("exit".equalsIgnoreCase(line)){
                break;
            }
            //将字符串转换为一组字节
            byte[] data = line.getBytes(StandardCharsets.UTF_8);
            fos.write(data);
        }
        System.out.println("再见!");
        fos.close();
    }
}





